package com.wunu.service;

import com.wunu.entity.Role;
import com.wunu.entity.RoleToMenu;
import com.wunu.entity.User;
import com.baomidou.mybatisplus.service.IService;
import com.wunu.model.RoleModel;

import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author wunu kin
 * @since 2019-03-25
 */
public interface IRoleService extends IService<Role> {
	
    /**
     * 新增角色信息
     * @param role 角色限信息
     * @return 新增结果 true/false
     */
    boolean add(User user,Role role)throws Exception;
    /**
     * 修改角色信息
     * @param role 角色限信息
     * @return 新增结果 true/false
     */
    boolean update(Role role)throws Exception;
    /**
     * 新增角色以及角色权限信息
     * @param roleModel 角色以及角色权限信息
     * @return 新增结果 true/false
     */
    boolean addRoleAndPermission(RoleModel roleToMenu)throws Exception;

    /**
     * 更新色以及角色权限信息
     * @param roleModel
     * @return
     * @throws Exception
     */
    boolean updateRoleInfo(RoleModel roleToMenu)throws Exception;

    /**
     * 通过角色编号获取菜单列表
     * @param roleCode
     * @return
     */
    Map<String,Object> getMenuByRoleCode(String roleCode);

    /**
     * 判断当前是否是超级管理员,如果是,不能修改信息 抛出异常
     * @param userNo
     * @throws Exception
     */
    void getRoleIsAdminByUserNo(String userNo) throws Exception;

    Map<String, Object> selectByRoleCode(String roleCode)throws Exception;

    void deleteByRoleCode(String roleCode)throws Exception;
    /**
     * 判断角色名是否存在
     * @param phone
     * @return
     */
    Role getRoleByRoleName(String roleName);
}
